package cn.hyman;

import org.apache.activemq.ActiveMQConnectionFactory;

import javax.jms.*;
import java.io.IOException;

public class TestQueueConsumer {
    public static void main(String[] args) throws JMSException, IOException {
        ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.2.165:61616");
        Connection connection = connectionFactory.createConnection();
        connection.start();
        final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
        // 第五步：使用Session对象创建一个Destination对象。和发送端保持一致queue，并且队列的名称一致。
        Destination destination = session.createQueue("my-queue");
        // 第六步：使用Session对象创建一个Consumer对象。
        MessageConsumer consumer = session.createConsumer(destination);
        // 第七步：接收消息。
//        for (int i = 0; i < 3; i++) {
//            TextMessage message = (TextMessage) cn.hyman.consumer.receive();
//            session.commit();
//            System.out.println("收到消息 ：" + message.getText());
//        }
        consumer.setMessageListener(message -> {
            if (message instanceof TextMessage) {
                System.out.println(message);
            } else {
                System.out.println("非文字类message");
            }

        });
        //等待键盘输入，这句代码我不理解
        System.in.read();
        // 第九步：关闭资源
        consumer.close();
        session.close();
        connection.close();
    }
}
